home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Source Code / Pascal / Snippets / PNL Libraries / MyUGLibrary.p < prev    next >
Encoding:
Text File  |  1996-06-01  |  3.2 KB  |  123 lines  |  [TEXT/CWIE]

  1. unit MyUGLibrary;
  2.  
  3. interface
  4.  
  5.     uses
  6.         UGLibrary;
  7.  
  8.     var
  9.         ugl_refnum: integer;
  10.         ugl_access_id: longint;
  11.  
  12.     function UGLOpen (adminkey: Str8): OSErr;
  13.     function UGLClose: OSErr;
  14.     function UGLGetUserInfo (var name: Str31; uid, gid: longint; var pb: UGParamBlockRec): OSErr;
  15.     function UGLGetFirstUserInfo (var name: Str31; var pb: UGParamBlockRec): OSErr;
  16.     function UGLGetNextUserInfo (var pb: UGParamBlockRec): OSErr;
  17.     function UGLGetULInfo (var servername: Str31; var pb: UGParamBlockRec): OSErr;
  18.  
  19. implementation
  20.  
  21.     uses
  22.         Folders;
  23.  
  24.     function UGLOpen (adminkey: Str8): OSErr;
  25.         var
  26.             name: Str63;
  27.             pb: UGParamBlockRec;
  28.             err: OSErr;
  29.     begin
  30.         err := FindFolder(kOnSystemDisk, kPreferencesFolderType, true, pb.ugFileParam.ugVRefNum, pb.ugFileParam.ugDirID);
  31.         if err = noErr then begin
  32.             name := '';
  33.             pb.ugFileParam.ugNamePtr := @name;
  34.             pb.ugFileParam.ugAdminKey := @adminkey;
  35.             err := UGOpenFile(@pb, false);
  36.             ugl_refnum := pb.ugFileParam.ugRefNum;
  37.             ugl_access_id := pb.ugFileParam.ugAccessID;
  38.         end;
  39.         UGLOpen := err;
  40.     end;
  41.  
  42.     function UGLClose: OSErr;
  43.         var
  44.             pb: UGParamBlockRec;
  45.     begin
  46.         pb.ugFileParam.ugRefNum := ugl_refnum;
  47.         UGLClose := UGCloseFile(@pb, false);
  48.     end;
  49.  
  50.     function UGLGetUserInfo (var name: Str31; uid, gid: longint; var pb: UGParamBlockRec): OSErr;
  51.     begin
  52.         pb.ugUserParam.ugRefNum := ugl_refnum;
  53.         pb.ugUserParam.ugAccessID := ugl_access_id;
  54.         pb.ugUserParam.ugPosOffset := 0;
  55.         pb.ugUserParam.ugUserID := uid;
  56.         pb.ugUserParam.ugGroupID := gid;
  57.         pb.ugUserParam.ugNamePtr := @name;
  58.         UGLGetUserInfo := UGGetUserInfo(@pb, false);
  59.     end;
  60.  
  61.     function UGLGetFirstUserInfo (var name: Str31; var pb: UGParamBlockRec): OSErr;
  62.     begin
  63.         name := '';
  64.         pb.ugUserParam.ugRefNum := ugl_refnum;
  65.         pb.ugUserParam.ugAccessID := ugl_access_id;
  66.         pb.ugUserParam.ugNamePtr := @name;
  67.         pb.ugUserParam.ugPosOffset := 0;
  68.         pb.ugUserParam.ugUserID := 0;
  69.         pb.ugUserParam.ugGroupID := 0;
  70.         UGLGetFirstUserInfo := UGGetUserInfo(@pb, false);
  71.     end;
  72.  
  73.     function UGLGetNextUserInfo (var pb: UGParamBlockRec): OSErr;
  74.     begin
  75.         pb.ugUserParam.ugPosOffset := 1;
  76.         UGLGetNextUserInfo := UGGetUserInfo(@pb, false);
  77.     end;
  78.  
  79.     function UGLGetULInfo (var servername: Str31; var pb: UGParamBlockRec): OSErr;
  80.     begin
  81.         servername := '';
  82.         pb.ugServerParam.ugRefNum := ugl_refnum;
  83.         pb.ugServerParam.ugAccessID := ugl_access_id;
  84.         pb.ugServerParam.ugNamePtr := @servername;
  85.         UGLGetULInfo := UGGetULInfo(@pb, false);
  86.     end;
  87.  
  88. end.
  89.  
  90. uses
  91.     UGLibrary, Folders;
  92.  
  93. var
  94.     name: Str31;
  95.     adminpassword: Str8;
  96.     pb: UGParamBlockRec;
  97.     err: OSErr;
  98. begin
  99.     ShowText;
  100.     name := '';
  101.     adminpassword := '';
  102.     err := FindFolder(kOnSystemDisk, kPreferencesFolderType, true, pb.ugFileParam.ugVRefNum, pb.ugFileParam.ugDirID);
  103.     writeln(err);
  104.     pb.ugFileParam.ugNamePtr := @name;
  105.     pb.ugFileParam.ugAdminKey := @adminpassword;
  106.     err := UGOpenFile(@pb, false);
  107.     writeln(err);
  108.     if err = noErr then begin
  109.         pb.ugUserParam.ugGroupID := 0;
  110.         pb.ugUserParam.ugPosOffset := 0;
  111.         pb.ugUserParam.ugUserID := 0;
  112.         pb.ugUserParam.ugNamePtr := @name;
  113.         name := '';
  114.         err := UGGetUserInfo(@pb, false);
  115.         while (err = noErr) do begin
  116.             writeln(pb.ugUserParam.ugUserID, ' ', name);
  117.             pb.ugUserParam.ugPosOffset := 1;
  118.             err := UGGetUserInfo(@pb, false);
  119.         end;
  120.         err := UGCloseFile(@pb, false);
  121.         writeln(err);
  122.     end;
  123. end.